A digital data processing system includes three basic elements, namely, a processor, a memory, and an input/output (I/O) system. The memory stores information in addressable storage locations. This information includes data and instructions for processing the data. The processor fetches information from the memory, interprets the information as either an instruction or data, processes the data in accordance with the instructions, and returns the processed data to the memory for storage therein. The I/O system under control of the processor, also communicates with the memory to transfer information, including instructions and data to be processed, to the memory, and to obtain processed data from the memory. Typically, the I/O system includes a number of diverse types of units, including video display terminals, printers, interfaces to public telecommunications network, and secondary storage devices, including disk and tape storage devices.
Further, a digital data processing system as described above can support a number of different programs executing in such a way that each uses the processor and I/O system to display data on a video display terminal simultaneously in a number of different "windows", i.e., separate rectangular areas of the video display screen. Additionally, this data can be displayed in different colors within different windows.
A color lookup table, or colormap, is commonly used to provide color data values from the processor to a video digital to analog converter (VDAC) device and then to the I/O system so that the data values are displayed as color on the video display terminal.
Typically, a data processing system capable of providing color displays uses a single colormap, usually having 256 colors, which is shared by all programs. The single colormap can be allocated or shared in several ways. For example, the MIT X Window System (.TM.) uses an allocation policy whereby the last application to request the colormap receives exclusive use of it. That application can, therefore, define the colors of the various pixels (individual picture elements or dots on the display screen) for its own purposes, and, in the process, cause the pixels in windows created by other application to display in unpredictable colors. In other examples, applications can request some but not all of the entries in the colormap.
Typically, however, a single colormap cannot meet the color needs of all of the windows generated by the applications concurrently processed by the system. While some applications are designed to use colors common to other applications rather than using unique colors, other applications are designed to use unique colors and end up monopolizing the colormap, causing windows in other applications to display in unpredictable colors.
Copending applications: Ser. No. 206,203, filed Jun 13 1988, now U.S. Pat. No. 5,058,041; Ser. No. 206,026, filed Jun. 13 1988; Ser. No. 206,194, filed Jun. 13, 1988 now U.S. Pat. No. 4,929,889; Ser. No. 206,030, filed Jun. 13, 1988; Ser. No. 206,031, filed Jun. 13, 1988; Ser. No. 213,197, filed Jun. 29, 1988; Ser. No. 211,778, filed Jun. 27, 1988; Ser. No. 212,819, filed Jun. 29, 1988 now U.S. Pat. No. 5,001,469; and Ser. No. 212,834, filed Jun. 29, 1988 now U.S. Pat. No. 5,038,300 each describe hardware chips having several capabilities including support of multiple windows and colormaps and are herein incorporated by reference. The chips facilitate the display of up to 1024 colors, that is, they contain a colormap which has 1024 entries, with each entry defining a color that will be displayed in response to a pixel value that identifies the entry. The map may be divided into a plurality of groups which can effectively create several independent colormaps of an arbitrary size. The chips also provide up to 64 hardware layers that define windows, that is, overlapping rectangular areas of the screen, which use the colormaps.